Automatic Construction of Hoare Proofs from Abstract Interpretation Results

نویسندگان

  • Sunae Seo
  • Hongseok Yang
  • Kwangkeun Yi
چکیده

Interpretation Results Sunae Seo, Hongseok Yang, and Kwangkeun Yi 1 Department of Computer Science, Korea Advanced Institute of Science and Technology [email protected] 2 MICROS Research Center, Korea Advanced Institute of Science and Technology [email protected] 3 School of Computer Science and Engineering, Seoul National University [email protected] Abstract. By combining program logic and static analysis, we present an automatic approach to construct program proofs to be used in ProofCarrying Code. We use Hoare logic in representing the proofs of program properties, and the abstract interpretation in computing the program properties. This combination automatizes proof construction; an abstract interpretation automatically estimates program properties (approximate invariants) of our interest, and our proof-construction method constructs a Hoare-proof for those approximate invariants. The proof-checking side (code consumer’s side) is insensitive to a specific static analysis; the assertions in the Hoare proofs are always first-order logic formulas for integers, into which we first compile the abstract interpreters’ results. Both the property-compilation and the proof construction refer to the standard safety conditions that are prescribed in the abstract interpretation framework. We demonstrate this approach for a simple imperative language with an example property being the integer ranges of program variables. We prove the correctness of our approach, and analyze the size complexity of the generated proofs. By combining program logic and static analysis, we present an automatic approach to construct program proofs to be used in ProofCarrying Code. We use Hoare logic in representing the proofs of program properties, and the abstract interpretation in computing the program properties. This combination automatizes proof construction; an abstract interpretation automatically estimates program properties (approximate invariants) of our interest, and our proof-construction method constructs a Hoare-proof for those approximate invariants. The proof-checking side (code consumer’s side) is insensitive to a specific static analysis; the assertions in the Hoare proofs are always first-order logic formulas for integers, into which we first compile the abstract interpreters’ results. Both the property-compilation and the proof construction refer to the standard safety conditions that are prescribed in the abstract interpretation framework. We demonstrate this approach for a simple imperative language with an example property being the integer ranges of program variables. We prove the correctness of our approach, and analyze the size complexity of the generated proofs.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Off-line Semantic Slicing From Abstract Interpretation Results

One proposal for automatic construction of proofs about programs is to combine Hoare logic and abstract interpretation. Constructing proofs is in Hoare logic. Discovering programs’ invariants is done by abstract interpreters. One problem of this approach is that abstract interpreters often compute invariants that are not needed for the proof goal. The reason is that the abstract interpreter doe...

متن کامل

Towards Automatic Stability Analysis for Rely-Guarantee Proofs

The Rely-Guarantee approach is a well-known compositional method for proving Hoare logic properties of concurrent programs. In this approach, predicates in the proof must be proved invariant (or stable) under interference from the environment. We describe a framework, and a prototype implementation, for automatically detecting and repairing instability in such proofs. The method uses a combinat...

متن کامل

Automatic Coq Proofs Generation from Static Analyzers by Lightweight Instrumentation

This paper deals with program verification and more precisely with the question of how to provide verifiable evidence that a program verifies certain semantics properties. Program processing tools such as compiler or static analyzers are complex pieces of software which may contain errors. The idea of using analyzers as guessing algorithms and proving the discovered properties by independent me...

متن کامل

Proof of Imperative Programs in Type TheoryJean - Christophe

Proofs of correctness of imperative programs are traditionally done in rst order frameworks derived from Hoare logic 8]. On the other hand, correctness proofs of purely functional programs are almost always done in higher order logics. In particular, the realizability 10] allow to extract correct functional programs from constructive proofs of existential formulae. In this paper, we establish a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003